#include <bits/stdc++.h>
using namespace std;
int read()
{
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		x=(x<<1)+(x<<3)+(c^48);
		c=getchar();
	}
	return x*f;
}
int T;
int n;
int a[200005];
int p[1000005];
int last[200005];
long long sum[200005];
long long dp[200005];
int main()
{
	freopen("color.in","r",stdin);
	freopen("color.out","w",stdout);
	T=read();
	while(T--)
	{
		n=read();
		for(int i = 1;i <= n;i++)
		{
			a[i]=read();
			p[a[i]]=0;
		}
		for(int i = 1;i <= n;i++)
		{
			last[i]=p[a[i]];
			p[a[i]]=i;
		}
		// for(int i = 1;i <= n;i++)
		// {
		// 	printf("%d %d\n",i,last[i]);
		// }
		for(int i = 1;i <= n;i++)
		{
			sum[i]=0;
		}
		for(int i = 2;i <= n;i++)
		{
			if(a[i]==a[i-1])
			{
				sum[i]+=a[i];
			}
		}
		for(int i = 2;i <= n;i++)
		{
			sum[i]+=sum[i-1];
		}
		for(int i = 1;i <= n;i++)
		{
			dp[i]=dp[i-1];
			if(last[i]==0)
			{
				continue;
			}
			// cout<<x<<' '<<last[last[i]+1]<<endl;
			dp[i]=max(dp[i],dp[last[i]]+sum[i-1]-sum[last[i]]+(long long)a[i]);
			int j=i;
			int las=last[i]+1;
			long long suma=a[i];
			long long sums=sum[i-1]-sum[las];
			while(last[las]!=0)
			{
				dp[i]=max(dp[i],dp[last[las]]+suma+a[las]+sums+sum[las-1]-sum[last[las]]);
				suma+=a[las];
				sums+=sum[las-1]-sum[last[las]];
				if(las==last[las]+1)break;
				las=last[las]+1;
			}
			// if(last[last[i]+1]!=0)
			// {
			// 	int las=last[i]+1;
			// 	dp[i]=max(dp[i],dp[last[las]]+(long long)a[i]+(long long)a[las]+sum[i-1]-sum[las]+sum[last[i]]-sum[last[las]]);
			// 	if(last[last[las]+1]!=0)
			// 	{
			// 		int lla=last[las]+1;
			// 		dp[i]=max(dp[i],dp[last[lla]]+(long long)a[i]+(long long)a[las]+(long long)a[lla]+sum[i-1]-sum[las]+sum[last[i]]-sum[lla]+sum[last[las]]-sum[last[lla]]);
			// 	}
			// }
		}
		// for(int i = 1;i <= n;i++)
		// {
		// 	printf("%d %lld\n",i,dp[i]);
		// }
		printf("%lld\n",dp[n]);
	}
	return 0;
}